home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / wild / developer / examples / src / cynetik / cynetic4.s < prev    next >
Text File  |  1999-01-25  |  6KB  |  282 lines

  1.  
  2.     include    exec/exec_lib.i
  3.     include    wildinc.gs
  4.     include    wild/wild.i
  5.     include    wild/allmodules.i
  6.     include    extensions/vektorial.i
  7.     include    pypermacro.i
  8.  
  9.     Exec
  10.     lea.l    wildname,a1
  11.     jsr    _LVOOldOpenLibrary(a6)
  12.     move.l    d0,_WILDBase
  13.     beq    exit
  14.     
  15.     bsr    Go
  16.  
  17. exit    Exec
  18.     movea.l    _WILDBase,a1
  19.     move.l    a1,d0
  20.     beq.b    .nwi
  21. .nwi    jsr    _LVOCloseLibrary(a6)
  22.     moveq.l    #0,d0
  23.     rts
  24.     
  25. vektname    dc.b    'libs:Wild/Vektorial.library',0
  26. wildname    dc.b    'wild.library',0
  27. drawm        dc.b    'Candy+',0
  28. dispm        dc.b    'Peter&James',0
  29. brokm        dc.b    'TiX+',0
  30. lighm        dc.b    'Koton',0
  31. sincosname2    dc.b    'libs:'
  32. sincosname1    dc.b    'wild/tables/sincos1616.table',0
  33.         cnop    0,4
  34. _WILDBase    dc.l    0
  35. VektBase    dc.l    0
  36. WApp        dc.l    0
  37. AppTags        dc.l    WITD_Scene,TestScene
  38.         dc.l    WIAP_DrawModule,drawm
  39.         dc.l    WIAP_DisplayModule,dispm
  40.         dc.l    WIAP_BrokerModule,brokm
  41.         dc.l    WIAP_LightModule,lighm
  42.         dc.l    WIDI_Width,320
  43.         dc.l    WIDI_Height,256
  44.         dc.l    WIDI_DisplayID,$21000
  45.         dc.l    WITD_CutDistance,32000
  46.         dc.l    0
  47. sincos        dc.l    0
  48. SinOffs        dc.l    0
  49.  
  50. Go    bsr    SetUpWildApp
  51.     bsr    SetUpExts
  52.     
  53. cycle    Wild
  54.     move.l    WApp,a0
  55.     Call    InitFrame
  56.     move.l    WApp,a0
  57.     Call    RealyzeFrame
  58.     move.l    WApp,a0
  59.     Call    DisplayFrame
  60.  
  61.     add.w    #8,PUI
  62.     bmi.b    .npuir
  63.     clr.w    PUI
  64. .npuir    moveq.l    #0,d0
  65.     move.b    $dff007,d0
  66.     andi.w    #63,d0
  67.     cmp.w    #36,d0
  68.     bge.b    .nadpui
  69.     move.w    PUI,d1
  70.     sub.w    d0,d1
  71.     cmp.w    #-255,d1
  72.     bge.b    .ntpui
  73.     move.w    #-255,d1
  74. .ntpui    move.w    d1,PUI
  75. .nadpui
  76.  
  77. RotSecY    MACRO    ;\1=sec,angle EA
  78.     movea.l    VektBase,a6
  79.     lea.l    SECTOR_\1+ent_Ref+ref_I+Rel,a0
  80.     move.l    \2,d0
  81.     moveq.l    #vek_X,d1
  82.     moveq.l    #vek_Z,d2
  83.     Call    RotateDD
  84.     lea.l    SECTOR_\1+ent_Ref+ref_K+Rel,a0
  85.     move.l    \2,d0
  86.     moveq.l    #vek_X,d1
  87.     moveq.l    #vek_Z,d2
  88.     Call    RotateDD
  89.     ENDM
  90.     
  91.     RotSecY    SkruBase,BaseRot
  92.     RotSecY    SkruTreA,TreRot
  93.     RotSecY    SkruTreB,TreRot
  94.     RotSecY    SkruHeadA,HeadRot
  95.     RotSecY    SkruHeadB,HeadRot
  96.     RotSecY    SkruHeadC,HeadRot
  97.     RotSecY    SkruHeadD,HeadRot
  98.     RotSecY    SkruHeadE,HeadRot
  99.     RotSecY    SkruHeadF,HeadRot
  100.  
  101.     sub.l    #10,MyCamera+ref_O+Abs+vek_Y
  102.         
  103.     movea.l    VektBase,a6
  104.     lea.l    MyCamera,a0
  105.     lea.l    SECTOR_SkruBase+ent_Ref+ref_O+Abs,a1
  106.     moveq.l    #1,d0
  107. CLA    Call    CamLookingAt
  108.  
  109. .pr    btst    #7,$bfe001
  110.     beq.b    .pr
  111.     
  112.     btst    #6,$bfe001
  113.     bne    cycle
  114.  
  115.     bsr    KillWildApp
  116.     bsr    KillExts
  117.     rts
  118.  
  119. BaseRot    dc.l    5
  120. TreRot    dc.l    1023-10
  121. HeadRot    dc.l    25
  122.  
  123. SetUpExts    Wild
  124.         moveq.l    #0,d0
  125.         lea.l    vektname,a1
  126.         Call    LoadExtension
  127.         move.l    d0,VektBase
  128.         
  129.         rts
  130.  
  131. KillExts    Wild
  132.         movea.l    VektBase,a1
  133.         Call    KillExtension
  134.         rts
  135.         
  136. SetUpWildApp    Exec
  137.         Call    CreateMsgPort
  138.         tst.l    d0
  139.         bne.b    .msgok
  140.         rts
  141. .msgok        Wild
  142.         movea.l    d0,a0
  143.         lea.l    AppTags,a1
  144.         Call    AddWildApp
  145.         move.l    d0,WApp
  146.         
  147.         lea.l    sincosname1,a0
  148.         moveq.l    #WITA_SINCOS1616,d0
  149.         Call    LoadTable
  150.         move.l    d0,sincos
  151.         bne.b    .had
  152.         lea.l    sincosname2,a0
  153.         moveq.l    #WITA_SINCOS1616,d0
  154.         Call    LoadTable
  155.         move.l    d0,sincos
  156. .had        rts
  157.  
  158. KillWildApp    Wild
  159.         move.l    sincos,a1
  160.         move.l    a1,d0
  161.         beq.b    .nsc
  162.         Call    KillTable
  163. .nsc        
  164.         move.l    WApp,d0
  165.         bne.b    .okwa
  166.         rts
  167. .okwa        movea.l    d0,a0
  168.         move.l    wap_WildPort(a0),d2
  169.         Call    RemWildApp
  170.         Exec
  171.         move.l    d2,a0
  172.         Call    DeleteMsgPort
  173.         rts
  174.                 
  175.  
  176. TestScene    dc.l    TestWorld
  177. MyCamera
  178.  
  179.         QuickRefAbs    0,0,-900
  180.  
  181. *        DefAbs    0,0,-100
  182. *        DefAbs    0,1<<16,0
  183. *        DefAbs    1<<16,0,0
  184. *        DefAbs    0,0,1<<16
  185.  
  186. TestWorld
  187. twarhead    dc.l    TestArena
  188. twartail    dc.l    0
  189.         dc.l    TestArena
  190. twalhead    dc.l    twaltail
  191. twaltail    dc.l    0
  192.         dc.l    twalhead
  193.         dc.l    TestPlayer            
  194.  
  195. TestPlayer    dc.l    0            ; HAKK: no player, for now a sector is enough
  196.  
  197. TestArena    dc.l    twartail
  198.         dc.l    twarhead
  199.         QuickRefRel    0,0,0
  200.         dc.l    0            ; Parent of arenas is UNIVERSE! ABSOLUTE=RELATIVE
  201.         dc.l    0
  202.         dc.w    0
  203.         
  204. tasehead    dc.l    SECTOR_SkruBase
  205. tasetail    dc.l    0    
  206.         dc.l    SECTOR_SkruHeadF
  207.  
  208. taalhead    dc.l    taaltail
  209. taaltail    dc.l    0
  210.         dc.l    taalhead
  211. talihead    dc.l    TestLight
  212. talitail    dc.l    0
  213.         dc.l    TestLight
  214.         dcb    Sphere_SIZE*3
  215.         dc.l    0
  216.  
  217. TestLight    dc.l    AmbLight,talihead
  218.         dc.l    DOT_SkruBase11
  219.         dc.l    $0055ff
  220.         dc.w    255
  221.  
  222. AmbLight    dc.l    talitail,TestLight
  223.         dc.l    0
  224.         dc.l    $ffca22
  225.         dc.w    -16
  226.  
  227. TextTex        dc.l    0,0
  228.         dc.l    Imge
  229.  
  230. Imge        incbin    WildPJ:Support/256x256_Misc.chu
  231.  
  232. TextTex2    dc.l    0,0
  233.         dc.l    Imge2
  234.  
  235. Imge2        incbin    WildPJ:Trash/256x256.chu
  236.  
  237. TEXTURE_SkruBase0    EQU    TextTex
  238. TEXTURE_SkruTreA0    EQU    TextTex
  239. TEXTURE_SkruTreB0    EQU    TextTex
  240. TEXTURE_SkruHeadA0    EQU    TextTex
  241. TEXTURE_SkruHeadB0    EQU    TextTex
  242. TEXTURE_SkruHeadC0    EQU    TextTex
  243. TEXTURE_SkruHeadD0    EQU    TextTex
  244. TEXTURE_SkruHeadE0    EQU    TextTex
  245. TEXTURE_SkruHeadF0    EQU    TextTex
  246. TEXTURE_Platform0    EQU    TextTex2
  247.         
  248. PUI        dc.w    -16
  249.     
  250.         MakeSector SkruBase,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruBase.sec.s
  251.         MakeSector SkruTreA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreA.sec.s
  252.         MakeSector SkruTreB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreB.sec.s
  253.         MakeSector SkruHeadA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadA.sec.s
  254.         MakeSector SkruHeadB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadB.sec.s
  255.         MakeSector SkruHeadC,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadC.sec.s
  256.         MakeSector SkruHeadD,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadD.sec.s
  257.         MakeSector SkruHeadE,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadE.sec.s
  258.         MakeSector SkruHeadF,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadF.sec.s
  259.         MakeSector Platform,WildPJ:Support/TestSectors/Platform3.sec.s
  260.         
  261.         LinkSector SkruBase,SECTOR_SkruTreA,tasehead,TestArena
  262.         LinkSector SkruTreA,SECTOR_SkruTreB,SECTOR_SkruBase,SECTOR_SkruBase
  263.         LinkSector SkruTreB,SECTOR_SkruHeadA,SECTOR_SkruTreA,SECTOR_SkruBase
  264.         LinkSector SkruHeadA,SECTOR_SkruHeadB,SECTOR_SkruTreB,SECTOR_SkruTreA
  265.         LinkSector SkruHeadB,SECTOR_SkruHeadC,SECTOR_SkruHeadA,SECTOR_SkruTreA
  266.         LinkSector SkruHeadC,SECTOR_SkruHeadD,SECTOR_SkruHeadB,SECTOR_SkruTreA
  267.         LinkSector SkruHeadD,SECTOR_SkruHeadE,SECTOR_SkruHeadC,SECTOR_SkruTreB
  268.         LinkSector SkruHeadE,SECTOR_SkruHeadF,SECTOR_SkruHeadD,SECTOR_SkruTreB
  269.         LinkSector SkruHeadF,SECTOR_Platform,SECTOR_SkruHeadE,SECTOR_SkruTreB
  270.         LinkSector Platform,tasetail,SECTOR_SkruHeadF,TestArena
  271.     
  272.         PosSector SkruBase,0,0,0
  273.         PosSector SkruTreA,220,-202,93
  274.         PosSector SkruTreB,-220,-202,-93
  275.         PosSector SkruHeadA,0,62,186
  276.         PosSector SkruHeadB,140,62,-93
  277.         PosSector SkruHeadC,-160,62,-93
  278.         PosSector SkruHeadD,0,62,186
  279.         PosSector SkruHeadE,140,62,-93
  280.         PosSector SkruHeadF,-160,62,-93
  281.         PosSector Platform,0,200,0
  282.